Recently, machine learning and artificial intelligence have seen a rise in prominence in a variety of different fields and for a number of specific applications, largely due to advances in computing technology that enables the implementation of advanced algorithms and techniques. One such area is software development project management, which relates to creating and managing a development timeline, and coordinating appropriate resources (e.g., assigning software developers to specific tasks), that result in completion of a software development project. One approach to project management is the use of an Agile development framework. Agile is characterized by the utilization of quick, efficient development periods (called sprints), at the end of which one or more deliverables are created and then further sprints are adapted in response to changing development needs and objectives.
Generally, Agile development provides that a project can be organized into one or more segments with each segment being broken down into a plurality of ‘stories’—each story defining a particular piece of functionality in the segment. Stories typically include a description of the required functionality, acceptance criteria, story points (i.e., estimation of effort), start time, end time, creator, assignee (i.e., developer(s) that will work on the story), and so forth. The difference between the start time and the end time of the story is understood as the cycle time—that is, the total elapsed time including process time (during which a unit of work is acted upon to bring the story closer to an output) and delay time (during which a unit of work is used waiting to take the next action). Each story can be further partitioned into tasks. Typically, each sprint involves a developer or a team of developers conducting a full development cycle including planning, designing, coding, and quality assurance/testing phases.
To aid managers, producers, and developers, project management software packages have been used to organize, guide, and document the software development process more efficiently and effectively. Such software packages are available to track the Agile development process—examples include the JIRA™ issue/project tracking tool available from Atlassian, Agilean™ available from Agilean, and Planbox™ available from Planbox Inc. Such project management software packages typically track cycle time of stories and can provide certain user interfaces to help developers and managers visualize cycle time.
However, these packages do not have the capability to automatically analyze cycle time of completed stories in order to provide a cycle time prediction for newly-entered stories—so that developers can assess the impact of new stories on the development timeline and adjust the timeline as necessary to be more efficient. In addition, these existing packages do not automatically determine a root cause of certain cycle time anomalies for new stories that are entered so that developers can seamlessly change or remove specific stories from a sprint to avoid potential development issues or bottlenecks.